// ----------------------------------------------------------------------------
// CTextureMgr
// 
// This Manager class will be responsible for loading, freeing and using any
// texture images.
// ----------------------------------------------------------------------------

#ifndef CTEXTUREMGR_H
#define CTEXTUREMGR_H


class CTextureMgr: public CSingleton <CTextureMgr>
{
public:
	CTextureMgr();
	~CTextureMgr();

	int LoadTexture(const char *szFilename, int nTextureID = -1);
	//int LoadTextureFromMemory (UBYTE *pData, int nWidth, int nHeight, int nBPP, int nTextureID = -1); 

	void FreeTexture(int nTextureID);
	void FreeAll(void);

private:
	static void Initialize(void);

	int nNumTextures;					// Total number of textures loaded
	int *nTexIDs;						// Ptr to int array of loaded textures
}; // class CTextureMgr: public CSingleton <CTextureMgr>

#endif